const { mysql } = require('../../mysql')

// 获取收货地址列表
async function getListAction(ctx) {
    const openId = ctx.query.openId
    const addressList = await mysql('nideshop_address').where({
        'user_id': openId
    }).orderBy('is_default', 'desc').select()
    ctx.body = {
        addressList
    }
}

// 获取详细地址
async function detailAction(ctx) {
    const id = ctx.query.id
    const detailData = await mysql('nideshop_address').where({
      'id': id
    }).select()
    ctx.body = {
      data: detailData[0]
    }
}

// 添加或更新收货地址
async function saveAction(ctx) {
    const addressId = ctx.request.body.addressId
    const {userName, telNumber, address, detailaddress, checked, openId} = ctx.request.body

    // 判断是否为默认地址
    if(checked) {
        // 先查询默认地址的数据
        const isDefault = await mysql('nideshop_address').where({
            'user_id': openId,
            'is_default': 1
        }).select()
        // console.log(isDefault)
        // 如果当前存在, 将其更新为不是默认
        if(isDefault.length > 0) {
            await mysql('nideshop_address').where({
                'user_id': openId,
                'is_default': 1
            }).update({
                'is_default': 0
            })
        }
    }
    // 判断是否从编辑按钮进入页面, 如果不是只需要添加地址, 如果是则更新地址
    if(!addressId) {
        // 添加地址
        const data = await mysql('nideshop_address').insert({
            'name': userName,
            'mobile': telNumber,
            'address': address,
            'address_detail': detailaddress,
            'user_id': openId,
            'is_default': checked === 'true' || checked ? 1 : 0
        })
        if(data) {
            ctx.body = {
                data: true
            }
        } else {
            ctx.body = {
                data: false
            }
        }
    } else {
        // 更新地址
        const data = await mysql('nideshop_address').where({
            'id': addressId
        }).update({
            'name': userName,
            'mobile': telNumber,
            'address': address,
            'address_detail': detailaddress,
            'user_id': openId,
            'is_default': checked === 'true' || checked ? 1 : 0
        })
        if(data) {
            ctx.body = {
                data: true
            }
        } else {
            ctx.body = {
                data: false
            }
        }
    }
}

module.exports = {
    getListAction,
    detailAction,
    saveAction
}